const Koa = require('koa');
// 实例化
const app =  new Koa();
const PORT = 3002

const indent = (n) => new Array(n).join('&nbsp;');

// use 注册中间件的方法
// 中间件：函数 异步函数
// next 控制具柄下移
app.use(async (ctx, next) => {
  // ctx
  ctx.body = '<h1>请求 第一层</h1>'
  await next()
  ctx.body += `<h1>相应 第一层 </h1>`
})

app.use(async (ctx, next) => {
  // ctx
  ctx.body += `<h1>${indent(4)} 请求第二层 </h1>`
  await next()
  ctx.body += `<h1>${indent(4)}相应 第二层 </h1>`
})

app.use(async (ctx, next) => {
  // ctx
  ctx.body += `<h1>${indent(8)} 请求第三层 </h1>`
  await next()
  ctx.body += `<h1>${indent(8)}相应 第三层 </h1>`
})



app.listen(PORT, () => {
  console.log(`http://localhost:${PORT}`)
})